package com.zhuo.mp.pojo;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.zhuo.mp.enums.SexEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data   //生成get\set方法
@NoArgsConstructor  //无参构造
@AllArgsConstructor //全参构造
@TableName("tb_user")   //指定对应的数据库表名
public class User extends Model<User> {
    @TableId(value = "id",type = IdType.AUTO)     //指定id类型为自增长
    private Long id;
    private String userName;

    /**
     * @TableField 表属性标签
     * select = false 查询时设置不允许被查询
     * fill = FieldFill.INSERT  插入时自动填充
     *
     * value = "password"  属性名与数据库中的字段名不一致时，指定数据库表中的字段名
     */
    @TableField(select = false,fill = FieldFill.INSERT)
    private String password;

    private String name;
    private Integer age;
    @TableField(value = "email")    //属性名与数据库中的字段名不一致时，指定数据库表中的字段名
    private String mail;

    @TableField(exist = false)
    private String address;     //在数据库中不存在的，若不指定会报错

    @Version    //乐观锁的版本字段
    private Integer version;

    @TableField(value = "deleted")
    @TableLogic     //逻辑删除字段
    private Integer deleteId;

    //性别（枚举类型）
    private SexEnum sex;
}